c7838816d2315015e25ac5a21bd7b64e52e39507,src/main/java/com/forweaver/filter/GitFilter.java,GitFilter,doFilter,#ServletRequest#ServletResponse#FilterChain#,41

Before Change


		gitUtil.Init(repo);
		List<String> beforeBranchList = gitUtil.getBranchList();

		if (pass.getPermission() == 1) { // 강� 개설�� 경우
			filterchain.doFilter(req, res);
			if (repo.getCategory() == 1) {
				gitUtil.createStudentBranch(beforeBranchList,	lectureService.get(lectureName));
			}
			return;
		} else if (pass.getPermission() == 0) { 
			// 강� 수강�� 경우

			if (repo.getCategory() == 0) { // 예제 저장소� 경우

				gitUtil.notWriteBranches();
				filterchain.doFilter(req, res);
				gitUtil.writeBranches();
			} else{ // 숙제 저장소� 경우

				if(repo.getDDay() == -1) // 마��� 지났� 못올림.
				{
					return;
				}
				gitUtil.hideNotUserBranches(weaver.getId());
				gitUtil.checkOutBranch(weaver.getId());
				filterchain.doFilter(req, res);
				gitUtil.showBranches();
				gitUtil.checkOutMasterBranch();

After Change


		Pass pass = weaver.getPass(lectureName + "/" + repoName);
		Project project = projectService.get(lectureName + "/" + repoName);

		if(project == null){ // 프로�트가 없� 때
			((HttpServletResponse) res).sendError(500);
			return;
		}

		if(project.getCategory()<=0){ // 프로�트가 공개 프로�트�때
			if(pass == null && requestUrl.endsWith("/git-receive-pack")){ //권한 없는 사람� 올릴려고 할 때
				((HttpServletResponse) res).sendError(403);
				return;
			}
			filterchain.doFilter(req, res);
			return;
		}

		if(project.getCategory()>0 && pass != null){ // 프로�트가 비공개�고 권한� 있� 때
			filterchain.doFilter(req, res);
			return;
		}

		if(project.getCategory() == 3 && 
				weaver.getPass("ROLE_PROF") != null &&
				!requestUrl.endsWith("/git-receive-pack")){ // 프로�트가 과제 프로�트�� 회�� �수 권한� 때 �기만 가능
			filterchain.doFilter(req, res);
			return;
		}